;:poke56,128 ;:sys36864 ;.opt oo tmp = 247 irq = $314 konf = 1 font = 53248 ram = 14336 mem1 = 56 mem2 = 52 tmp2 = tmp+2 pages = 3 bank = 53272 user = 31 scnclr = $e544 out = $ffd2 dir = tmp2+2 ctr = dir+1 speed = 100 getkey = 65508 poke1 = 2023 poke2 = 54272+poke1 ink = 646 lines = 8 f1 = 4 key = 197 norm = 21 *= $8000 jmp init new jsr scroll .byt 76 vec .word 0 copy lda konf pha sei lda #51 sta konf ldy #font sta tmp+1 lda #>ram sta tmp2+1 ldx #pages loop lda (tmp),y sta (tmp2),y iny bne loop inc tmp+1 inc tmp2+1 dex bne loop pla sta konf cli rts picture jsr scnclr ldx #39 lda #"." rei1 jsr out dex bpl rei1 ldy #lines rei2 lda #"." jsr out ldx #37 lda #"M" rei3 jsr out dex bpl rei3 lda #"." jsr out dey bpl rei2 ldx #39 lda #"." rei4 jsr out dex bpl rei4 ldx #39 lda #"n" rei5 jsr out dex bpl rei5 ldx #79 lda #"s" rei6 jsr out dex bpl rei6 ldx #39 lda #"-" rei7 jsr out dex bpl rei7 ldy #lines rei8 lda #"-" jsr out ldx #37 lda #"V" rei9 jsr out dex bpl rei9 lda #"-" jsr out dey bpl rei8 ldx #38 lda #"-" reia jsr out dex bpl reia sta poke1 lda ink sta poke2 rts init jsr picture sei lda irq cmp #new sta irq sty irq+1 set lda #>ram sta mem1 sta mem2 lda #speed sta ctr lda #0 sta dir jsr copy lda #user sta bank cli wait jsr getkey beq wait rts scroll ldy #ram sta tmp+1 ldx #pages shift lda (tmp),y bit dir bmi forward asl adc #0 jmp reward forward lsr bcc reward clc adc #128 reward sta (tmp),y iny bne shift inc tmp+1 dex bne shift dec ctr bne back lda #speed sta ctr lda dir eor #255 sta dir back lda key cmp #f1 beq off rts off lda #norm sta bank lda vec ldy vec+1 sta irq sty irq+1 rts